package com.baidu.push.example;

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.baidu.android.pushservice.PushConstants;
import com.baidu.android.pushservice.PushManager;
import com.chinatelecom.epush.R;
import com.chinatelecom.epush.im.AppStart;
import com.chinatelecom.epush.im.LoginActivity;
import com.chinatelecom.epush.im.MainActivity1;
import com.chinatelecom.epush.im.many.PushDemoActivity;
import com.chinatelecom.epush.index.LoginAppActivity;
import com.chinatelecom.epush.widge.AppManager;
public class MainActivity extends Activity implements OnClickListener{
	
	private static final String KEY ="ZPp4eHYdG7Khkz77SloAHZ4V";
	/**
	 * 用于展示联系人的Fragment
	 */
	private ContactsFragment contactsFragment;

	/**
	 * 用于展示动态的Fragment
	 */
	private NewsFragment newsFragment;

	/**
	 * 用于展示设置的Fragment
	 */
	private SettingFragment settingFragment;


	/**
	 * 联系人界面布局
	 */
	private View contactsLayout;

	/**
	 * 动态界面布局
	 */
	private View newsLayout;

	/**
	 * 设置界面布局
	 */
	private View settingLayout;


	/**
	 * 在Tab布局上显示联系人图标的控件
	 */
	private ImageView contactsImage;

	/**
	 * 在Tab布局上显示动态图标的控件
	 */
	private ImageView newsImage;

	/**
	 * 在Tab布局上显示设置图标的控件
	 */
	private ImageView settingImage;


	/**
	 * 在Tab布局上显示联系人标题的控件
	 */
	private TextView contactsText;

	/**
	 * 在Tab布局上显示动态标题的控件
	 */
	private TextView newsText;

	/**
	 * 在Tab布局上显示设置标题的控件
	 */
	private TextView settingText;
	
	

	/**
	 * 用于对Fragment进行管理
	 */
	private FragmentManager fragmentManager;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		System.out.println("MainActivity onCreate");
		setContentView(R.layout.activity_main1);
		// 初始化布局元素
		initViews();
		fragmentManager = getFragmentManager();
		// 第一次启动时选中第1个tab
		setTabSelection(2);
		//autoBindBaiduYunTuiSong();
		
		
		
	}
	
	
	private void autoBindBaiduYunTuiSong()
	{
//		if (!Utils.hasBind(getApplicationContext()))
//		{
			PushManager.startWork(getApplicationContext(),
					PushConstants.LOGIN_TYPE_API_KEY,
					KEY);
//		}
	}


	/**
	 * 在这里获取到每个需要用到的控件的实例，并给它们设置好必要的点击事件。
	 */
	private void initViews() {
		contactsLayout = findViewById(R.id.contacts_layout);
		newsLayout = findViewById(R.id.news_layout);
		settingLayout = findViewById(R.id.setting_layout);
		contactsImage = (ImageView) findViewById(R.id.contacts_image);
		newsImage = (ImageView) findViewById(R.id.news_image);
		settingImage = (ImageView) findViewById(R.id.setting_image);
		contactsText = (TextView) findViewById(R.id.contacts_text);
		newsText = (TextView) findViewById(R.id.news_text);
		settingText = (TextView) findViewById(R.id.setting_text);
		contactsLayout.setOnClickListener(this);
		newsLayout.setOnClickListener(this);
		settingLayout.setOnClickListener(this);
		
	}

	@Override
	public void onClick(View v) {
		if(v.getId() == R.id.contacts_layout){
			setTabSelection(1);
		}else if(v.getId() == R.id.news_layout){
			setTabSelection(2);
		}else if(v.getId() == R.id.setting_layout){
			setTabSelection(3);
		}
	}


	/**
	 * 根据传入的index参数来设置选中的tab页。
	 * 
	 * @param index
	 *            每个tab页对应的下标。0表示消息，1表示联系人，2表示动态，3表示设置。
	 */
	private void setTabSelection(int index) {
		// 每次选中之前先清楚掉上次的选中状态
		clearSelection();
		// 开启一个Fragment事务
		FragmentTransaction transaction = fragmentManager.beginTransaction();
		// 先隐藏掉所有的Fragment，以防止有多个Fragment显示在界面上的情况
		hideFragments(transaction);
		switch (index) {
		case 1:
			// 当点击了联系人tab时，改变控件的图片和文字颜色
			/**
			contactsImage.setImageResource(R.drawable.contacts_selected);
			contactsText.setTextColor(Color.WHITE);
			if (contactsFragment == null) {
				// 如果ContactsFragment为空，则创建一个并添加到界面上
				contactsFragment = new ContactsFragment();
				transaction.add(R.id.content, contactsFragment);
			} else {
				// 如果ContactsFragment不为空，则直接将它显示出来
				transaction.show(contactsFragment);
			}
			**/
			Intent intent = new Intent();
			intent.setClass(MainActivity.this, AppStart.class);
			startActivity(intent);
			break;
		case 2:
			// 当点击了动态tab时，改变控件的图片和文字颜色
			newsImage.setImageResource(R.drawable.news_selected);
			newsText.setTextColor(Color.WHITE);
			if (newsFragment == null) {
				// 如果NewsFragment为空，则创建一个并添加到界面上
				newsFragment = new NewsFragment();
				transaction.add(R.id.content, newsFragment);
			} else {
				// 如果NewsFragment不为空，则直接将它显示出来
				transaction.show(newsFragment);
			}
			break;
		case 3:
		default:
			// 当点击了设置tab时，改变控件的图片和文字颜色
			settingImage.setImageResource(R.drawable.setting_selected);
			settingText.setTextColor(Color.WHITE);
			if (settingFragment == null) {
				// 如果SettingFragment为空，则创建一个并添加到界面上
				settingFragment = new SettingFragment();
				transaction.add(R.id.content, settingFragment);
			} else {
				// 如果SettingFragment不为空，则直接将它显示出来
				transaction.show(settingFragment);
			}
			break;
		}
		transaction.commit();
	}

	/**
	 * 清除掉所有的选中状态。
	 */
	private void clearSelection() {
		contactsImage.setImageResource(R.drawable.contacts_unselected);
		contactsText.setTextColor(Color.parseColor("#82858b"));
		newsImage.setImageResource(R.drawable.news_unselected);
		newsText.setTextColor(Color.parseColor("#82858b"));
		settingImage.setImageResource(R.drawable.setting_unselected);
		settingText.setTextColor(Color.parseColor("#82858b"));
	}

	/**
	 * 将所有的Fragment都置为隐藏状态。
	 * 
	 * @param transaction
	 *            用于对Fragment执行操作的事务
	 */
	private void hideFragments(FragmentTransaction transaction) {
		if (contactsFragment != null) {
			transaction.hide(contactsFragment);
		}
		if (newsFragment != null) {
			transaction.hide(newsFragment);
		}
		if (settingFragment != null) {
			transaction.hide(settingFragment);
		}
	}
	

	//菜单栏
	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        /*
         * 
         * add()方法的四个参数，依次是：
         * 
         * 1、组别，如果不分组的话就写Menu.NONE,
         * 
         * 2、Id，这个很重要，Android根据这个Id来确定不同的菜单
         * 
         * 3、顺序，那个菜单现在在前面由这个参数的大小决定
         * 
         * 4、文本，菜单的显示文本
         */

        menu.add(Menu.NONE, Menu.FIRST + 1, 5, "清除").setIcon(

        android.R.drawable.ic_menu_delete);

        // setIcon()方法为菜单设置图标，这里使用的是系统自带的图标，同学们留意一下,以

        // android.R开头的资源是系统提供的，我们自己提供的资源是以R开头的

        menu.add(Menu.NONE, Menu.FIRST + 2, 2, "编辑").setIcon(

        android.R.drawable.ic_menu_edit);

        menu.add(Menu.NONE, Menu.FIRST + 3, 6, "退出").setIcon(

        android.R.drawable.ic_lock_power_off);

        menu.add(Menu.NONE, Menu.FIRST + 4, 1, "主页").setIcon(

        android.R.drawable.ic_menu_add);

        menu.add(Menu.NONE, Menu.FIRST + 5, 4, "刷新").setIcon(

        android.R.drawable.ic_menu_info_details);

        menu.add(Menu.NONE, Menu.FIRST + 6, 3, "帮助").setIcon(

        android.R.drawable.ic_menu_help);

        return true;

    }
    //菜单选项被选中时事件
    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
		
            switch (item.getItemId()) {

            case Menu.FIRST + 1:
            	
            	Toast.makeText(this, "开源无限,后续扩展!", Toast.LENGTH_LONG).show(); 
                break;

            case Menu.FIRST + 2:
            	
            	Toast.makeText(this, "开源无限,后续扩展!", Toast.LENGTH_LONG).show();
                break;

            case Menu.FIRST + 3:
            	AppManager appman = AppManager.getAppManager();
                appman.AppExit(MainActivity.this);
                
                break;

            case Menu.FIRST + 4:
            	Intent intentPush = new Intent();
                intentPush.setClass(MainActivity.this, MainActivity.class);
                startActivity(intentPush);
            	       	          
                break;

            case Menu.FIRST + 5:
                Toast.makeText(this, "开源无限,后续扩展!", Toast.LENGTH_LONG).show(); 
                break;

            case Menu.FIRST + 6:
            	
            	Toast.makeText(this, "开源无限,后续扩展!", Toast.LENGTH_LONG).show();             
                break;

            }

            return false;

        }
	

}
